package main

import (
	"Intelligence/ConfigALL"
	"Intelligence/Util/Cron"
	"Intelligence/Util/Journal"
	"fmt"
	"log"
)

func init() {
	defer func() {
		//恢复程序的控制权
		err := recover()
		if err != nil {
			fmt.Println("init启动错误", err)
		}
	}()
}

//基础事件已经完成的情况下的初始化事件 (可以添加时间任务)
func _ExpectedStart() {

}

//预结束事件 会执行在结束基础事件之前
func _ExpectedEnd() {

}

func main() {
	defer func() {
		//恢复程序的控制权
		err := recover()
		if err != nil {
			fmt.Println("main启动错误", err)
		}
	}()

	//启动日记
	RjJi, err := Journal.RunRiJi()
	if err != nil {
		log.Println(err.Error())
		return
	}

	//读配置文件信息=>设置全局配置
	err = ConfigALL.RunConfig()
	if err != nil {
		RjJi.RiJiShuChuJingGaoFatal(err.Error())
		return
	}

	//注册结束事件
	//若无特别需要，不要改动这个位置，以免结束事件报错!
	defer exit()

	//自定义方法区 【开始】===>>>







	//自定义方法区 【结束】===>>>

	_ExpectedStart()

	//启动 定时任务
	Cron.RunCron()
}

func exit()  {
	riJiAlL, err := Journal.GetRiJi()
	riJi := riJiAlL[0]

	//输出前缀名
	QianZhuiMing := "[结束事件]"

	riJi.RiJiShuChuTiShiPrintln(QianZhuiMing, "启动中...")

	_ExpectedEnd()

	//自定义方法区 【开始】===>>>

riJiAlL:
	if err == nil {
		for _, i2 := range riJiAlL {
			err = i2.DelRiJi()
			if err != nil {
				riJi.RiJiShuChuTiShiPrintln(QianZhuiMing, err.Error())
			}
			riJiAlL, err = Journal.GetRiJi()
			goto riJiAlL
		}
	}

	//自定义方法区 【结束】===>>>

	riJi.RiJiShuChuTiShiPrintln(QianZhuiMing, "处理完毕")
}
